package student.aistar.design.factory.simple01;

/**
 * 简单工厂
 *      缺点: 如果产品一旦新增了, 需要修改工厂类
 *           违背了"开闭原则"
 */
public class ProductFactory {
    public static final int QQ = 1;
    public static final int WX = 1;

    //根据传入得参数来返回某个具体得产品
    //多态得应用 - 面向接口编程

    //3.方法的返回类型写成接口, 方法得执行结果可以是任意一个实现类

    public static Sender getInstance(int type){
        Sender sender = null;

        switch (type){
            case 1:
                //对象的创建 - 复杂的过程...
                sender = new QQSender();
                break;
            case 2:
                sender = new WXSender();
                break;
            default:
                System.out.println("参数不合法");
                break;
        }

        return sender;
    }
}
